Protocols currently exist for transmitting large quantities of information across the internet. Among these protocols, Real Time Protocol (RTP) is the standard protocol used for streaming multimedia streams across a network.
A packet is the fundamental unit of information. Examples of existing systems that use packets require a connection setup stage prior to transmitting packets using datagrams. A datagram is a self-contained packet comprising a header including information allowing the network to forward the datagram to the intended destination independently of previous or future datagrams. A packet consists of three elements. The first element is a header, which contains the information needed to get the packet from the source to the destination. The second element is data payload. The third element of packet is a trailer, which often contains techniques ensuring that errors do not occur during transmission.
The header of each packet includes a plurality of fields that include instructions for the receiving system for handling the received packet. RTP requires a header having a minimum of 12 bytes per packet. These headers are generally 96 bits in length. It is desirable to reduce the overall size of a packet and its header to substantially reduce the bandwidth cost associated with transmission of data packets.
A multimedia data stream includes a plurality of encoded frames of video data. When packets containing multimedia data are transmitted there may be a loss of data occurring during transmission. This loss of data results in choppy playback that diminishes the replay quality of multimedia data steam when decoded and displayed using a media player application. This problem is accentuated when the data being transmitted is being multicasted for receipt by a plurality of users. Existing systems requires significant overhead when asked to handle a data stream that is not received in its entirety or is received out of order. Furthermore, these systems merely contemplate ordering packets at the transport level and are not concerned with ordering data below this level, such as the order of the frames that make up the stream which is being transported. Reducing data loss at the frame level is highly desirable and produces an improved playback of received mulitcasted multimedia data streams.
Therefore, there is a need for a protocol which eliminates the loss-tolerant nature of multicasting. Furthermore, when transmitting a multimedia stream, transmitting over an unreliable channel can make stream corruption due to out of order delivery virtually undetectable and uncorrectable. Therefore, there is a need for a system and protocol that can detect and, when possible, correct multicast datagram delivery failures.
A system according to invention principles addresses these deficiencies and associated problems.